package com.itfenghuang.day02;

public class A00_复习 {
    public static void main(String[] args) {

//      一.
//        二进制:
//            1010
//            1*2**3   0*2**2   1*2**1    0*2**0
//             8  +   0   +  2  +  0  =  10
//        十进制:
//            256
//            2*10**2  +  5*10**1 +  6*10**0
//                   200 +  50  + 6

//      二.查看数字在程序中的二进制存储
        String xx = Integer.toBinaryString(21);
        System.out.println(xx);

//      三.数据类型
//            基本数据类型和引用数据类型
//            1.整形
//                int   :     整形          4字节
//                byte  :     字节          1字节
//                short :    短整形         2字节
//                long  :    长整形         8字节
//            2.浮点数
//                float :    单精度  小数   4字节
//                double:    双精度  小数   8字节
//            3.字符类型   一个字符
//                char  :     1字节
//            4.布尔类型
//                boolean    true 或者 false

//      四. 变量:本质是在内存中开辟一块空间用来存储数据
//             java是强类型语言,定义变量一定说明数据类型

//        变量的命名
//            1. a-z  A-Z  0-9  _  $  的组合
//            2. 不能使用数字开头,首字母小写
//            3. 不能使用特殊符号,关键字

//            int num=666;
//            System.out.println(num);
//
//            byte aa='1';//一个字符
//            System.out.println(aa);
//
//            short bb=222;
//            System.out.println(bb);
//
//            long cc=2222222222L;//超过定义的长整形需要在后面添加一个大写L
//            System.out.println(cc);
//
//            float dd=12.234f;//如果需要定义小数 float 需要添加 f
//            System.out.println(dd);
//
//            double ff=21.331;//java 中 默认的小数类型是double
//            System.out.println(ff);
//
//            boolean gg=true;// true 或者 false
//            System.out.println(gg);

//      五. 运算符
//        1.算术运算符     +  -  *  /  %

//        2.赋值运算符     +=  -=  =  *=  /=  %=
//            int aa=5;
//            aa +=3; //aa = aa + 3
//            System.out.println(aa);

//        3.比较运算符     >  <  >=  <=  !=  ==

//        4.逻辑运算符     &&  ||  !
//            System.out.println(!(3>2 && 2!=1));

//        5.++ -- 运算符
//           ++在前  先自加 后 赋值
//           ++在后  先赋值 后 自加
//            int aa=5;
//            int bb= aa++   +   ++aa   +   aa--   +   --aa;
//                   5    +   6+1=7   +    7     +     5  = 24
//                   6          7        7-1=6         5
//            System.out.println(bb);

//        6.三元运算符  条件成立22赋值给aa   不成立赋值33给aa
//            int aa = 5<3? 22:33;
//            System.out.println(aa);

//        7.位远运算符
//        按照二进制的位 进行运算 &  |  〜  << >>  ^
//            System.out.println(12 & 10);//与运算: &
//            System.out.println(12 | 10);//或运算: |
//            System.out.println(12 << 10);//左位移: <<
//            System.out.println(12 >> 10);//右位移: >>

//      六.接受 并在 控制台输入数据
//        System.out.println("写点什么吧");
//        Scanner sc = new Scanner(System.in);
//        int s = sc.nextInt();//可以在控制台输入一个整数
//        String s1 = sc.nextLine();//可以在控制台输入字符串  用"" 双引号
//        System.out.println(s1);//输入所输入的整数

//      七. 随机数
//        Random rd = new Random();
//        int i = rd.nextInt(5);// 随机 [0 - 5) 的整数
//        System.out.println(i);

//        小数强制转换成整数
//            double aa=12.33;
//            int bb=(int)aa;
//            System.out.println(bb);

//        一个数的次方
//        int num=3;
//        double pow = Math.pow(num, 2);
//        System.out.println(pow);

//      八.控制结构
//        if分支
//            if(true && false){
//                System.out.println("成立");
//            }else{
//                System.out.println("不成立");
//        int num=2;

//        switch (num){
//            case 1:
//                System.out.println("听歌");
//                break;
//            case 2:
//                System.out.println("看书");
//            default:
//        }



//        猜数字游戏
//        Scanner sc = new Scanner(System.in);
//        Random rd = new Random();
//        for (int i=0;i<5;i++){
//            int num = sc.nextInt();
//            int j = rd.nextInt(10);
//            if (num>j){
//                System.out.println("大");
//            }else if(num<j){
//                System.out.println("小");
//            }else if(num==j){
//                System.out.println("囍");
//                break;
//            }
//        }
//        1-100累加求和
//        int num=0;
//        for (int i = 0; i < 101; i++) {
//            num=num+i;
//        }
//        System.out.println(num);

//        鸡兔同笼问:一个笼子, 里面 30个头  88只脚问 鸡多少只 兔多少只
//            for (int i = 0; i <31 ; i++) {
//                int sum=30-i;
//                if (i*2 + sum*4==88){
//                    System.out.println(i+" "+sum);
//                }
//            }
//        假设一张纸厚一毫米,  对折多少次可以超过珠穆朗玛峰  8848
            int i=1;
        for (int j = 0; j <30 ; j++) {
            i=i+1;
            int aa=2;
            double pow = Math.pow(aa, i);
            double num=0.0001;
            double sum=pow*num;
            if(sum>=8848){
                System.out.println(i);
                break;
            }
        }




    }
}
